# coding: utf-8
"""爬虫组件封装"""

from ..http.request import Request
from ..http.item import Item


class Spider(object):
    """
    1. 构建初始请求信息, 生成请求对象
    2. 解析响应对象, 返回数据对象(Item)或者新的请求对象(Request)
    """
    # 默认初始请求地址
    start_urls = ["http://www.baidu.com/", "http://www.douban.com/"]

    def start_request(self):
        """构建初始请求对象并返回, 这就是一生成器"""
        for start_url in self.start_urls:
            yield Request(start_url)

    def parse(self, response):
        """解析请求, 并返回新的请求对象或者数据对象"""
        data = {
            "status_code": response.status_code,
            "content": response.body,
            "url": response.url
        }
        # 返回item对象, 这里并未实现返回请求对象
        return Item(data)
